// http-Methods:

// get获取服务器到数据 
// post 新建数据
// patch/put 更新数据
// delete 删除数据

// Restful Api 
// 传统api:/api/list?pageIndex=2   把url当作功能来设计
// restful Api设计: /api/list/2    用method操作类型，用url做资源唯一标识，配合method 操作一目了然

// 用method表示操作类型   传统api设计
// post请求 /api/create-blog
// post请求 /api/update-blog?id =100
// get请求  /api/get-blog?id=100

// 用method表示操作类型   restful api 设计
// post请求 /api/blog
// patch请求 /api/blog/100
// get请求 /api/blog/100

// http headers 
// 常见的 request Headers
//       response Headers

// request Headers
// accept 浏览器可接受的数据
// accept-encoding 浏览器可接收的压缩算法，如gzip  保证资源变小，传输更快
// accept-language 浏览器可接收的语言，如zh-CN
// connection： keep-alive 一次tcp连接重复使用
// cookie
// Host 
// user-agent 浏览器信息
// content-type 发送数据的格式，如application/json

// response Headers
// content-type 发送数据的格式，如application/json
// content-length 返回数据的大小，多少字节
// content-encoding 返回数据的压缩算法。如gzip
// set-cookie 

// 缓存相关headers 
// Cache-control  Expires被cache-control代替
// Last-MOdified response Headers带着if-Modified-Since 
// E-tag response Headers带着If-None-Match

// http缓存
// 强制缓存  浏览器 初次请求 服务器 ，服务器来控制catch-control

// Cache-control 
// 在response Headers
// 控制强制缓存的逻辑  本地缓存
// 例如 Cache-control: max-age = 3124124 (单位秒)  
                    // no-cache 不用本地缓存 
                    // no-store 不用本地缓存，且不用服务端的缓存

// 协商缓存
// 1.服务端缓存策略  服务端判断文件是否缓存
// 2.服务器判断客户端资源，是否和服务端资源一样
// 3.一致则返回304，否则返回200和最新资源+资源标识

// 协商缓存过程
// 浏览器 初次请求服务器 ，服务器返回资源和资源标识
// 浏览器再次请求，带着资源标识，服务器判断 相同则返回304不同这返回资源和新的资源标识
// （在request Headers中 带着if-none-match =》对应e-tag或者if-modified-Since 对应last-modified）
// 优先使用E-tag   last-modified只能精确到秒  

// 资源标识
// 在Response Headers 中有2种， last-MOdified 资源最后修改的时间，
                            // E-tag资源唯一标识

// 3种刷新操作，不同缓存策略
// 正常操作 url地址刷新 强制缓存有效 协商缓存有效
// 手动刷新 f5 command + r 强制缓存失效，协商缓存有效
// 强制刷新 ctrl+f5 强制刷新失效 协商缓存失效

